The present invention relates generally to communication controllers, and more particularly to an integrated circuit (IC) communication protocol controller having an identification data string which may be changed without disturbing other programmed functions from a generic identification data string to a unique identification data string customized for a specific purpose.
Communications controllers may be used whenever two or more separate devices must communicate together by using a certain communications protocol. Generally, data is transferred (sent and received) between the two or more separate devices by sequential digital signals, e.g., serially transmitted digital packets. Numerous communications protocol are being used for both wired and wireless communications links between the two or more devices, e.g., USB, IEEE 1451, J-1850, DALI, LIN, ethernet, and wireless standards such as radio frequency, e.g., Bluetooth, and infrared transmission, e.g., IrDA.
For example, but not limited to, wireless communications links such as infrared (IR) between two or more devices require a robust communications protocol. The devices at each end of an IR link may move freely within range and out of range. The IR link may be broken in the middle of a transmission, or may suffer interference from external light sources. The Infrared Data Association (IrDA) is an organization which promotes an IR standard for interoperability of wireless IR links between various manufacturers devices. The IRDA defines a set of specifications, or protocol stack, that provides for the establishment and maintenance of an IR link so that error free communication is possible. The IrDA Standard includes three mandatory specifications: the Physical Layer, Link Access Protocol (IrLAP), and Link Management Protocol (IrLMP). The first version of the IrDA specification, Version 1.0, provided for communication at data rates up to 115.2 Kb/s. Version 1.1 extended the data rates up to 4 Mb/s, while maintaining backward compatibility with Version 1.0 compliant products. All IrDA Specifications are incorporated by reference herein for all purposes.
When two IrDA compliant devices establish a connection the process is analogous to connecting two devices with serial ports using a cable. An IRDA connection is limited to half-duplex operation because the infrared transmitter and receiver (transceiver) cannot transmit and receive at the same time.
Whenever two IrDA devices come within optical infrared range, they have to recognize each other. The objective is that one IRDA device has some task to accomplish and the other IrDA device has a resource needed to accomplish this task. For example, when an IrDA equipped laptop computer needs to print a document the laptop computer will be brought within optical range of an IrDA equipped printer. In this case the laptop computer has a task to be performed (print a document) and the printer has the resource to perform the task. The laptop computer is the primary IRDA device and the printer is the secondary IrDA device.
Wired communications links (network) also must provide robust and secure data transfer between devices. Typically devices communicating over wired and/or wireless communications links have different purposes, e.g., printers, camera, keyboard, disk storage, etc. Different brands and models of devices are also frequently found on the communication links. It would be advantageous to be able to easily and rapidly identify characteristics and capabilities of these devices.
What is needed are cost effective and easy to implement ways of associating device identification data strings with respective devices and supplying the necessary logic circuits therefor.
The invention overcomes the above-identified problems as well as other shortcomings and deficiencies of existing technologies by providing hardware and software methods, system and apparatus for programming and supplying an identification code (identification data string) for any wired or wireless connected devices. According to an exemplary embodiment of the invention, a device comprises a communications controller adapted for the type of wired or wireless communications link that the device is functionally in data communications therewith. The communications controller further comprises a programmable non-volatile memory, e.g., an electrically erasable programmable read only memory (EEPROM), flash memory, etc. A unique identification data string may be programmed into the EEPROM before manufacture of the device or a standard generic pre-programmed identification string may be initially programmed and then the unique identification string may be programmed into the EEPROM at a later time.
In another exemplary embodiment, an IrDA compliant communications controller having an IrDA protocol stack and a non-volatile memory that may be programmed with a generic or unique identification data string before assembly into an IrDA compliant system, or may be programmed with the unique identification data string after assembly and integration in the IrDA compliant system. The non-volatile memory of the IrDA communications controller may be adapted to store a generic identification string at the time of manufacture. This generic identification string may be used without modification or may be easily changed either before or after assembly of the IrDA communications controller into the IrDA compliant system.
In addition, it is contemplated and within the scope of the present invention that the identification data string may be changed (upgraded) whenever an upgrade is made to the associated device. According to an exemplary embodiment of the invention, the identification string may be stored in user accessible read/write non-volatile memory locations.
The communications controller may be for example, but not limited to, a microcontroller, a microprocessor, a programmable logic array (PLA), an application specific integrated circuit (ASIC), digital logic and the like.
In accordance with an exemplary embodiment of the present invention, an apparatus for storing an identification data string used in identifying characteristic of a device in a communications circuit comprising a communications controller adapted for connection to a device and a communications circuit and a programmable non-volatile memory for storing an identification data string representative of the capabilities of the device. The programmable non-volatile memory may be an electrically erasable and programmable read only memory (EEPROM). The programmable non-volatile memory may also be a programmable flash memory. The communications controller may generate a serial clock rate. The communications circuit may be wireless. The wireless communications circuit may be infrared, Bluetooth or IRDA. The communications circuit may be wired. The wired communications circuit may be ethernet, USB, firewire, DALI, LIN, J-1850 or IEEE-1451.9. Serial data may be transmitted from a UART and serial data may be received by the UART. The programmable non-volatile memory may be programmed with a first identification data string that is generic, and may be adapted to be programmed with a second identification data string that is associated with specific capabilities of the device. The communications controller may comprise a microcontroller, a microprocessor, digital signal processor, a programmable logic array or an application specific integrated circuit.
The present invention is also directed to a method for storing an identification data string used in identifying characteristic of a device in a communications circuit comprising the steps of providing a communications controller adapted for connection to a device and a communications circuit, providing a programmable non-volatile memory and storing an identification data string representative of the device capabilities. The method further comprising the steps of transmitting serial data with a UART and receiving serial data with the UART. A portion of the transmitted serial data is the identification data string.
In addition, the present invention is directed to a system for communications between two or more devices, wherein first device application logic is adapted for sending transmit serial data at a serial clock rate and receiving receive serial data at the serial clock rate. A first communications controller is coupled to said first device application logic, said first communications controller encoding the transmit serial data and decoding the receive serial data on a communication circuit. Second device application logic adapted for receiving the transmit serial data at the serial clock rate and transmitting the receive serial data at the serial clock rate. A second communications controller coupled to said second device application logic, said communications controller decoding the transmit serial data and encoding the receive serial data on the communication circuit. Said first and second communications controllers having a first programmable non-volatile memory for storing a first identification data string representative of the capabilities of the first device, said second communications controllers having a second programmable non-volatile memory for storing a second identification data string representative of the capabilities of the second device. Such that the first and second identification data strings are transmitted and received between the first and second devices over the communications circuit. A first infrared transmitter and first encoder may be coupled to said first communications controller, wherein said first infrared transmitter and first encoder convert first transmit pulses from said first communications controller into first infrared light pulses A second infrared transmitter and second encoder may be coupled to said second communications controller, wherein said second infrared transmitter and second encoder convert second transmit pulses from said second communications controller into second infrared light pulses. A first infrared receiver is adapted for receiving the second infrared light pulses and converting the second infrared light pulses into first receive pulses. A second infrared receiver is adapted for receiving the first infrared light pulses and converting the first infrared light pulses into second receive pulses. The first infrared receiver is coupled to said first communications controller. Said second infrared receiver is coupled to said second communications controller. The first and second device application logic are selected from the group consisting of a microcontroller, a microprocessor, digital signal processor, a programmable logic array and an application specific integrated circuit. The first and second device application logic comprises a central processing unit, a random access memory and a read only memory.
A technical advantage of the present invention is a single infrared encoder/decoder that may be used for different applications and with different devices.
Another technical advantage is a unique identification string may be easily programmed into a non-volatile memory of an IrDA compliant device.
A feature of the present invention is flexibility in the application of a single design of an encoder/decoder for many different IrDA compliant devices.
Another feature is easily changing an identification string that indicates the type of IrDA device.
Features and advantages of the invention will be apparent from the following description of the embodiments, given for the purpose of disclosure and taken in conjunction with the accompanying drawings.